Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
15-07-2026

Inwerkingtreding:
16-07-2026

20.4 Solvabiliteit - wat zijn de reserves?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 20.4.0
2# Parameters: ?peildatum
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6prefix onz-zorg:  <http://purl.org/ozo/onz-zorg#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9
10SELECT ?Kental ?Waarde
11WHERE {
12    {
13        SELECT (SUM(IF(?jaarrekeningpost = "D Reserves", ?bedrag, 0)) AS ?reserves)
14        WHERE {
15            {
16                SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
17                WHERE {
18                    # BIND("2024-12-31"^^xsd:date AS ?peildatum)                     
19                    BIND(?peildatum AS ?peildatum_argument)
20                    {
21                        SELECT  # totaal per rubriek
22                            ?rubriek ?categorie
23                            (SUM(?geld_bedrag_post) + SUM(?saldo_waarde)/COUNT(?saldo_waarde) AS ?bedrag_rubriek)
24                        WHERE {
25                            {
26                                SELECT  # bereken het meest recente saldo per rubriek, 0 indien geen saldo
27                                    ?rubriek ?categorie
28                                    (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
29                                    ?peildatum_argument
30                                    (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
31                                    ?saldo_datum ?saldo
32                                WHERE {
33                                    # BIND("2024-12-31"^^xsd:date AS ?peildatum)                                     
34									BIND(?peildatum as ?peildatum_argument)
35
36                                    {
37                                        # Prismant: prefix-mapping, want Prismant consolideert niet dus we willen onderliggende rubrieken
38                                        {
39                                        ?rubriek a onz-fin:Grootboekrubriek .
40                                        }
41                                        UNION
42                                        {
43                                        ?rubriek a onz-fin:Grootboekrekening .
44                                        }
45                                        BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
46
47                                        VALUES (?prismantPrefix ?categorie) {
48                                        ("05413" "D.IV")
49                                        ("05311" "D.V")
50                                        ("05342" "D.V")
51                                        ("05423" "D.V")
52                                        ("05323" "D.VI")
53                                        ("0539"  "D.VII")
54                                        ("05493" "D.VII")
55                                        ("05915" "D.VII")
56                                        ("091"   "D.VIII")
57                                        }
58                                        FILTER(STRSTARTS(?rubriekCode, ?prismantPrefix))
59                                    }
60                                    UNION
61                                    {
62                                        # RGS: exacte mapping, want RGS consolideert zelf onderliggende rubrieken
63                                        VALUES (?rubriekCode ?categorie) {
64                                            ("BEivHer" "D.III")
65                                            ("BEivWer" "D.IV")
66                                            ("BEivStr" "D.IV")
67                                            ("BEivBer" "D.V")
68                                            ("BEivBef" "D.VI")
69                                            ("BEivOvr" "D.VII")
70                                            ("BEivOre" "D.VIII")
71                                        }
72                                    
73                                        BIND(IRI(CONCAT(STR(onz-fin:), ?rubriekCode)) AS ?rubriek)
74                                            {
75                                            ?rubriek a onz-fin:Grootboekrubriek .
76                                            }
77                                            UNION
78                                            {
79                                            ?rubriek a onz-fin:Grootboekrekening .
80                                            }
81                                    }
82
83                                    OPTIONAL {
84                                        ?rubriek onz-g:isAbout ?saldo .
85                                        ?saldo
86                                            a onz-fin:EindSaldo ;
87                                            onz-fin:heeftGeldBedrag ?saldo_bedrag ;
88                                            onz-g:hasDate ?saldo_datum .
89
90                                        FILTER (?saldo_datum <= ?peildatum_argument)
91
92                                        FILTER NOT EXISTS {  
93                                            ?rubriek onz-g:isAbout ?saldo2 .
94                                            ?saldo2
95                                                a onz-fin:EindSaldo ;
96                                            onz-g:hasDate ?saldo_datum2 .
97
98                                            FILTER(?saldo2 != ?saldo)
99                                            FILTER (?saldo_datum2 <= ?peildatum_argument)
100                                            FILTER (
101                                                ?saldo_datum2 > ?saldo_datum 
102                                                || (
103                                                    ?saldo_datum2 = ?saldo_datum 
104                                                    && STR(?saldo2) > STR(?saldo)
105                                                )
106                                            )
107                                        }
108                                    }
109                                }
110                            }
111                            OPTIONAL {
112                                ?grootboek_post
113                                    a onz-fin:Grootboekpost ;
114                                    onz-g:partOf ?rubriek ;
115                                    onz-g:hasDate ?datum ;
116                                    onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
117                                # Behoud de grootboek post alleen voor de meest specifieke rubriek, 
118                                # om dubbeltelling bij meerdere rubrieken te voorkomen
119                                FILTER NOT EXISTS {
120                                  ?grootboek_post onz-g:partOf ?specifiekereRubriek .
121                                  ?specifiekereRubriek onz-g:partOf+ ?rubriek .
122                                }
123                                FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum)))
124                            }
125                            BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag_post)
126
127                        } GROUP BY ?rubriek ?categorie
128                    }
129
130                    VALUES (?categorie ?jaarrekeningpost){
131                    ("D.III"  "D Reserves")
132                    ("D.IV"   "D Reserves")
133                    ("D.V"    "D Reserves")
134                    ("D.VI"   "D Reserves")
135                    ("D.VII"  "D Reserves")
136                    ("D.VIII" "D Reserves")
137                }
138                } GROUP BY ?jaarrekeningpost
139            }
140        }
141    }
142    
143    BIND("Reserves" AS ?Kental)
144    BIND(
145    ROUND(xsd:decimal(?reserves))
146    AS ?Waarde
147)
148}
149ORDER BY ?Kental
150